package cn.tedu.dao;

import java.util.List;

import cn.tedu.entity.User;

/**
 * 用户的数据库操作的接口
 * @author Administrator
 *
 */
public interface UserDao {
	/**
	 * 登录的数据库操作方法
	 * @param uname      用户名
	 * @param upassword  密码
	 * @return  用户名和密码在数据库中的id
	 *          0:数据库中没有指定的数据
	 */         
	public int login(String uname,String upassword)throws Exception;
	/**
	 * 注册用户
	 * @param user 用户信息
	 * @return  受影响的行数
	 */
	public int addUser(User user)throws Exception;
	/**
	 * 查询所有用户的信息的数据库方法
	 * @return  list集合
	 */
	public List<User> findAllUser()throws Exception;
	/**
	 * 删除用户信息,根据id
	 * @param id   用户id
	 * @return   受影响的行数
	 * @throws Exception
	 */
	public int deleteUser(int id)throws Exception;
	/**
	 * 根据用户id查询用户信息
	 * @param id  用户的id
	 * @return   User对象
	 * @throws Exception
	 */
	public User findUserById(int id)throws Exception;
	/**
	 * 更新用户信息
	 * @param user 用户信息
	 * @return  受影响的函数
	 */
	public int updateUser(User user)throws Exception;
	/**
	 * 分页+模糊查询中的获取总记录数
	 * @param keywords  模糊关键字
	 * @return   指定模糊条件的总记录数
	 */
	public int getCount(String[] keywords)throws Exception;
	/**
	 * 分页+模糊查询中的获取当前页的数据
	 * @param currentPage   当前页号
	 * @param pageSize      每页显示条数
	 * @param keywords      模糊关键字
	 * @return   List集合
	 */
	public List<User> getUsersByPage(int currentPage, int pageSize, String[] keywords)throws Exception;
	/**
	 * 根据用户名称查询用户是否存在
	 * @param uname  用户名称
	 * @return   用户的id
	 * @throws Exception
	 */
	public int findUserByName(String uname)throws Exception;
}
